home *** CD-ROM | disk | FTP | other *** search
-
-
-
- XXXXDDDDrrrraaaawwwwAAAArrrrcccc((((3333XXXX11111111)))) XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....6666)))) XXXXDDDDrrrraaaawwwwAAAArrrrcccc((((3333XXXX11111111))))
-
-
-
- NNNNAAAAMMMMEEEE
- XDrawArc, XDrawArcs, XArc - draw arcs and arc structure
-
- SSSSYYYYNNNNTTTTAAAAXXXX
- XDrawArc(_d_i_s_p_l_a_y, _d, _g_c, _x, _y, _w_i_d_t_h, _h_e_i_g_h_t, _a_n_g_l_e_1,
- _a_n_g_l_e_2)
- Display *_d_i_s_p_l_a_y;
- Drawable _d;
- GC _g_c;
- int _x, _y;
- unsigned int _w_i_d_t_h, _h_e_i_g_h_t;
- int _a_n_g_l_e_1, _a_n_g_l_e_2;
-
- XDrawArcs(_d_i_s_p_l_a_y, _d, _g_c, _a_r_c_s, _n_a_r_c_s)
- Display *_d_i_s_p_l_a_y;
- Drawable _d;
- GC _g_c;
- XArc *_a_r_c_s;
- int _n_a_r_c_s;
-
- AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
- _a_n_g_l_e_1 Specifies the start of the arc relative to the
- three-o'clock position from the center, in units
- of degrees * 64.
-
- _a_n_g_l_e_2 Specifies the path and extent of the arc relative
- to the start of the arc, in units of degrees * 64.
-
- _a_r_c_s Specifies an array of arcs.
-
- _d Specifies the drawable.
-
- _d_i_s_p_l_a_y Specifies the connection to the X server.
-
- _g_c Specifies the GC.
-
- _n_a_r_c_s Specifies the number of arcs in the array.
-
- _w_i_d_t_h
- _h_e_i_g_h_t Specify the width and height, which are the major
- and minor axes of the arc.
-
- _x
- _y Specify the x and y coordinates, which are
- relative to the origin of the drawable and specify
- the upper-left corner of the bounding rectangle.
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _X_D_r_a_w_A_r_c draws a single circular or elliptical arc, and
- _X_D_r_a_w_A_r_c_s draws multiple circular or elliptical arcs. Each
- arc is specified by a rectangle and two angles. The center
- of the circle or ellipse is the center of the rectangle, and
-
-
-
- Page 1 (printed 10/3/02)
-
-
-
-
-
-
- XXXXDDDDrrrraaaawwwwAAAArrrrcccc((((3333XXXX11111111)))) XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....6666)))) XXXXDDDDrrrraaaawwwwAAAArrrrcccc((((3333XXXX11111111))))
-
-
-
- the major and minor axes are specified by the width and
- height. Positive angles indicate counterclockwise motion,
- and negative angles indicate clockwise motion. If the
- magnitude of angle2 is greater than 360 degrees, _X_D_r_a_w_A_r_c or
- _X_D_r_a_w_A_r_c_s truncates it to 360 degrees.
-
- For an arc specified as
- [ _x, _y, _w_i_d_t_h, _h_e_i_g_h_t, _a_n_g_l_e1, _a_n_g_l_e2], the origin of the
- major and minor axes is at [_x+ 2_w_i_d_t_h_____, _y+ 2_h_e_i_g_h_t______], and the
- infinitely thin path describing the entire circle or ellipse
- intersects the horizontal axis at [_x, _y+ 2_h_e_i_g_h_t______] and
- [_x+_w_i_d_t_h, _y+ 2_h_e_i_g_h_t______] and intersects the vertical axis at
- [_x+ 2_w_i_d_t_h_____, _y] and [_x+ 2_w_i_d_t_h_____, _y+_h_e_i_g_h_t]. These coordinates can
- be fractional and so are not truncated to discrete
- coordinates. The path should be defined by the ideal
- mathematical path. For a wide line with line-width lw, the
- bounding outlines for filling are given by the two
- infinitely thin paths consisting of all points whose
- perpendicular distance from the path of the circle/ellipse
- is equal to lw/2 (which may be a fractional value). The
- cap-style and join-style are applied the same as for a line
- corresponding to the tangent of the circle/ellipse at the
- endpoint.
-
- For an arc specified as
- [ _x, _y, _w_i_d_t_h, _h_e_i_g_h_t, _a_n_g_l_e1, _a_n_g_l_e2], the angles must be
- specified in the effectively skewed coordinate system of the
- ellipse (for a circle, the angles and coordinate systems are
- identical). The relationship between these angles and
- angles expressed in the normal coordinate system of the
- screen (as measured with a protractor) is as follows:
-
- skewed-angle = _a_t_a_n(|(tan(normal-angle)*_h_e_i_g_h_t_w_i_d_t_h______)|)+_a_d_j_u_s_t
-
- The skewed-angle and normal-angle are expressed in radians
- (rather than in degrees scaled by 64) in the range [0, 2J]
- and where atan returns a value in the range [-J_, 2J_] and
- adjust is:
-
- 0 for normal-angle in the range [0, 2J_]
- J for normal-angle in the range [J_, 23J__]
- 2J for normal-angle in the range [ 23J__, 2J]
-
- For any given arc, _X_D_r_a_w_A_r_c and _X_D_r_a_w_A_r_c_s do not draw a
- pixel more than once. If two arcs join correctly and if the
- line-width is greater than zero and the arcs intersect,
- _X_D_r_a_w_A_r_c and _X_D_r_a_w_A_r_c_s do not draw a pixel more than once.
-
-
-
- Page 2 (printed 10/3/02)
-
-
-
-
-
-
- XXXXDDDDrrrraaaawwwwAAAArrrrcccc((((3333XXXX11111111)))) XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....6666)))) XXXXDDDDrrrraaaawwwwAAAArrrrcccc((((3333XXXX11111111))))
-
-
-
- Otherwise, the intersecting pixels of intersecting arcs are
- drawn multiple times. Specifying an arc with one endpoint
- and a clockwise extent draws the same pixels as specifying
- the other endpoint and an equivalent counterclockwise
- extent, except as it affects joins.
-
- If the last point in one arc coincides with the first point
- in the following arc, the two arcs will join correctly. If
- the first point in the first arc coincides with the last
- point in the last arc, the two arcs will join correctly. By
- specifying one axis to be zero, a horizontal or vertical
- line can be drawn. Angles are computed based solely on the
- coordinate system and ignore the aspect ratio.
-
- Both functions use these GC components: function, plane-
- mask, line-width, line-style, cap-style, join-style, fill-
- style, subwindow-mode, clip-x-origin, clip-y-origin, and
- clip-mask. They also use these GC mode-dependent
- components: foreground, background, tile, stipple, tile-
- stipple-x-origin, tile-stipple-y-origin, dash-offset, and
- dash-list.
-
- _X_D_r_a_w_A_r_c and _X_D_r_a_w_A_r_c_s can generate _B_a_d_D_r_a_w_a_b_l_e, _B_a_d_G_C, and
- _B_a_d_M_a_t_c_h errors.
-
- SSSSTTTTRRRRUUUUCCCCTTTTUUUURRRREEEESSSS
- The _X_A_r_c structure contains:
-
- typedef struct {
- short x, y;
- unsigned short width, height;
- short angle1, angle2; /* Degrees * 64 */
- } XArc;
-
- All x and y members are signed integers. The width and
- height members are 16-bit unsigned integers. You should be
- careful not to generate coordinates and sizes out of the
- 16-bit ranges, because the protocol only has 16-bit fields
- for these values.
-
- DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
- _B_a_d_D_r_a_w_a_b_l_e
- A value for a Drawable argument does not name a
- defined Window or Pixmap.
-
- _B_a_d_G_C A value for a GContext argument does not name a
- defined GContext.
-
- _B_a_d_M_a_t_c_h An _I_n_p_u_t_O_n_l_y window is used as a Drawable.
-
- _B_a_d_M_a_t_c_h Some argument or pair of arguments has the correct
- type and range but fails to match in some other
-
-
-
- Page 3 (printed 10/3/02)
-
-
-
-
-
-
- XXXXDDDDrrrraaaawwwwAAAArrrrcccc((((3333XXXX11111111)))) XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((RRRReeeelllleeeeaaaasssseeee 6666....6666)))) XXXXDDDDrrrraaaawwwwAAAArrrrcccc((((3333XXXX11111111))))
-
-
-
- way required by the request.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- XDrawLine(3X11), XDrawPoint(3X11), XDrawRectangle(3X11)
- _X_l_i_b - _C _L_a_n_g_u_a_g_e _X _I_n_t_e_r_f_a_c_e
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 4 (printed 10/3/02)
-
-
-
-